\begin{tikzpicture}[node distance=1cm, auto,>=latex', thick]
    \tikzstyle{tool} = [draw, thin, fill=blue!20, minimum width=7em, text width=8em, text centered]
    \tikzstyle{data} = [ellipse, draw, thin, fill=green!20, minimum width=3em, text centered]
    \tikzstyle{human} = [rectangle, thin, minimum height=7em, minimum width=2.5em ,text width=2em]
    \tikzstyle{compiler} = [rectangle split, 
                            rectangle split parts=3, 
                            rectangle split draw splits=true, 
                            rectangle split part fill={red!20, blue!20, green!20}, 
                            text width=8em]
    \tikzstyle{sageata} = [ single arrow, 
                            minimum height=1.5em, 
                            minimum width=0.5em, 
                            single arrow head extend=0.3em]
                            
    \node[human,label=above:{\scriptsize Programator}] (om) {};
    \node[data, right of=om, xshift=3cm] (cod) {\scriptsize Cod};
    \node[compiler, right of=cod, xshift=3cm] (comp)
    {\scriptsize Compilator 
        \nodepart {second} {\scriptsize Verificare tip}
        \nodepart {third} {\scriptsize Proprietate $\leftrightarrow$ Tip}
    };
    \node[data, right of=comp, xshift=3cm] (yes_no) {\scriptsize DA / NU};

    \path [->] (om) edge node[above] {\scriptsize Limbaj de}
                         node[below] {\scriptsize programare} (cod);
    \path [->] (cod) edge (comp.text west);
    \path [->] (comp.east) edge (yes_no);


    \node[sageata, draw, shape border rotate=270, xshift=-0.4cm, yshift=-0.1cm] at (comp.text east){};
    \node[sageata, draw, shape border rotate=90 , xshift=-0.4cm, yshift=+0.1cm] at (comp.third east){};

%    \path [draw] (comp.text east) + (-0.3cm,0cm) -- +(-0.3cm , 0cm);
%    \path [draw] (comp.third east) edge (comp.second east);


    \path [draw] (om.north) + (0,-0.7cm) circle (0.2cm);                % cap
    \path [draw] (om.north) + (0,-0.9cm) -- + (0,-1.5cm);               % corp
    \path [draw] (om.north) + (-0.5cm,-1cm) -- + (+0.5cm,-1cm);         % maini
    \path [draw] (om.north) + (0,-1.5cm) -- + (-0.5cm,-2cm);            % picior st
    \path [draw] (om.north) + (0,-1.5cm) -- + (+0.5cm,-2cm);            % picior dr

    \path [draw,ultra thick] (comp.north west) rectangle (comp.text split east);
    \path [draw,ultra thin] (comp.text split west) rectangle (comp.second split east);
    \path [draw,ultra thin] (comp.second split west) rectangle (comp.third split east);
    \path [draw,ultra thick] (comp.north west) rectangle (comp.third split east);

%    \path [draw] (prop.north west) + (-2cm, 1cm) rectangle (type_check.south east) + (1cm, 1cm);
\end{tikzpicture} 